1. Field of the Invention
The present invention relates to a method and an apparatus for calibration of an industrial robot system comprising: at least one robot having a first robot coordinate system and configured to process a workpiece, and a positioner adapted to hold the workpiece and to change the orientation of the workpiece by rotating it about a rotational axis while the robot processes the workpiece.
2. Prior Art
Industrial robots are highly flexible devices used for a wide variety of operations in many different industrial applications. Robots are programmed to follow a path including a plurality of target points. The robot program includes the positions of the target points, which define the programmed path. The conventional method to program a robot is to teach the robot the path by manually moving the TCP (Tool Center Point) of the robot to the target points along the path and storing the robot positions for each target point. A TCP is defined for each robot tool. In a basic robot system the positions of the target points are programmed with respect to the robot coordinate system. However, if the robot has to be replaced, the new robot has to be placed in exactly the same position as the original robot, or the new robot has to be reprogrammed.
By defining the path with respect to a local coordinate system defined with respect to fixture, holding the workpiece to be processed by the robot, the accuracy of the path with respect to the workpiece will not depend on the robot's position relative to the fixture as long as the fixture coordinate system can be defined with respect to the robot coordinate system. The fixture coordinate system may be defined by three reference points. The reference points may be defined by manually jogging the TCP, Tool Center Point, of the robot to each of reference points. In the case of an arc welding robot, the TCP is defined as the weld wire tip.
Instead of manually jogging the TCP to the reference points, they are often defined as the result of automatic searches. In the case of arc welding robots a common search method is to place a voltage between the wire tip and the workpiece. As the TCP is interpolated towards the workpiece, physical contact is detected when a current is found to be flowing from the welding torch tip to the workpiece. The robot is stopped when contact is detected. Another search method uses electrical contact in the same way as in the example above, but instead of touching the workpiece with the welding gun wire tip a tooling ball attached to the welding gun is brought in contact with a plurality of tooling balls fixed on the workpiece or fixture. By executing several searches towards the fixed tooling ball, a number of positions where the ball attached to the welding torch is touching the fixed ball are measured, thereby enabling calculation of the centre of the fixed tooling ball.
It is common, for example in arc welding, to mount the fixture holding the workpiece on a positioner with one or more degrees of freedom to achieve access to the workpiece at optimum welding angles. The positioner is adapted to change the orientation of the workpiece by rotating it about one or more axes while the robot processes the workpiece. A typical positioner includes a motor, a gearbox, a rotational disc, and a fixture adapted to fixedly hold one or more workpieces. The fixture is firmly connected to the rotational disc and rotatable about a rotational axis, which is actuated by the motor. In this case the target points on the robot path are programmed with respect to an object coordinate system defined with respect to the rotational disc of the positioner. If the robot or the positioner for some reason has to be replaced, it is necessary to recalibrate the position of the robot relative to the positioner in order to be able to use the same robot program without having to adjust the target points. Further, if the positioner has two or more stations, each with its own fixture, and the robot is carrying out the same task on each station, it is possible to use the same robot program at all stations by calibration of a unique coordinate system for each station.
The programming of robots is a time-consuming process and the conventional methods of using the robot during the programming and the teaching process ties up the production equipment and delays production start. In order to save time and speed production start, it is desirable to program a robot off-line. Conventionally, this is done through a graphical simulation by an off-line programming tool. The programming tool contains a graphical component for generating a graphical 3D representation of the robot, the positioner, and work objects in the robot cell based on graphical models, for example CAD models. The programming tool further contains a graphical means for teaching target points of the path. The graphical simulation provides a natural and easy method for programming and visualizing an industrial robot.
During off-line programming of a robot system including a robot and a positioner, the positions of the target points are defined with respect to a nominal object coordinate system, which in turn is defined with respect to a nominal positioner coordinate system, which is defined with respect to the base coordinate system of the robot. The nominal coordinate system is an ideal coordinate system defined by the graphic layout of the off-line programming system. Commonly, the positioner coordinate system is defined with respect to the rotational disc of the positioner, such that the origin of the positioner coordinate system is located at the rotational disc, the z-axis of the positioner coordinate system is defined as the rotational axis of the positioner, and the x- and y-axes are parallel with the surface of the rotational disc. Traditionally, the base coordinate system of the robot is positioned in the base of the robot with the z-axis aligned with the first rotational axis of the robot. When the off-line programming is completed, the program including the target positions are transferred to the control system of the robot.
However, a robot program prepared by an off-line programming system cannot directly be used for operating a robot in a real robot cell, because the positional relationship between the robot, the positioner, and the objects in the off-line environment may deviate from the actual positional relationship between the robot, the positioner, and the objects in the real robot cell. Further, the relation between the base coordinate system of the real robot and the coordinate system of the real positioner has to be determined.
Today, the relation between the base coordinate system of the robot and the coordinate system of the positioner is determined by marking out a reference point on the rotational disc of the positioner, providing the robot with a calibration tool in the form a sharp tip, rotating the axis of the positioner so that the reference point is rotated into at least three different angles, manually moving the robot so that the tip of the calibration tool is in contact with the marked reference point at the three different angles of the axis, and determining the positions of the reference point for the three angles in the base coordinate system of the robot. The determined positions form a circle and the center point of the circle is the origin of the positioner coordinate system. The plane of the circle is the xy-plane of the coordinate system. The direction of the normal to the xy-plane is determined to be the direction of the rotational axis of the positioner, and thus the z-axis of the coordinate system. A problem with this method is that the accuracy of the calibration depends on the skill of the robot operator to move the robot so that the calibration tip correctly points at the calibration point. If the reference points are not measured in exactly the same point at the rotational disc, the plane of the circle will not be entirely parallel to the plane of the rotational disc. Since the radius of the rotational disc is much smaller than the distance to the other fixing point of the axis, a small error in the positions of the reference points will cause an angular error in the z-axis, which leads to a large position error of the calibration.
In some applications, it is common to have two or more robots working on one or more workpieces held by the same positioner and rotated about the same axis or axes. The robots may perform different processes on the same workpiece or parallel processes on different workpieces. In other applications, it is also common to have a positioner with a plurality of workstations, each with one or more rotating axis, and two or more robots working on each workstation. The positioner is rotatable about a vertical axis so that the workstations are moved between the robots. In a robot system including two or more robots and a positioner including one or more workstations, the calibration of the robot system becomes very complicated and time-consuming. For example, it is necessary to determine the relation between the base coordinate systems for robots, and to determine the relation between each object coordinate system and the positioner coordinate system.
Further, for many applications there is a high demand on the accuracy of the processing of the workpiece, which also leads to a high demand on the accuracy of the calibration of the robot system. For example, in welding applications there is a high demand on the accuracy of the welding,